package  main.java.leetcode.editor.cn;
//2022-04-21 17:03:25
//给你一个由若干单词组成的句子 sentence ，单词间由空格分隔。每个单词仅由大写和小写英文字母组成。 
//
// 请你将句子转换为 “山羊拉丁文（Goat Latin）”（一种类似于 猪拉丁文 - Pig Latin 的虚构语言）。山羊拉丁文的规则如下： 
//
// 
// 如果单词以元音开头（'a', 'e', 'i', 'o', 'u'），在单词后添加"ma"。
//
// 
// 例如，单词 "apple" 变为 "applema" 。 
// 
// 
// 如果单词以辅音字母开头（即，非元音字母），移除第一个字符并将它放到末尾，之后再添加"ma"。
// 
// 例如，单词 "goat" 变为 "oatgma" 。 
// 
// 
// 根据单词在句子中的索引，在单词最后添加与索引相同数量的字母'a'，索引从 1 开始。
// 
// 例如，在第一个单词后添加 "a" ，在第二个单词后添加 "aa" ，以此类推。 
// 
// 
// 
//
// 返回将 sentence 转换为山羊拉丁文后的句子。 
//
// 
//
// 示例 1： 
//
// 
//输入：sentence = "I speak Goat Latin"
//输出："Imaa peaksmaaa oatGmaaaa atinLmaaaaa"
// 
//
// 示例 2： 
//
// 
//输入：sentence = "The quick brown fox jumped over the lazy dog"
//输出："heTmaa uickqmaaa rownbmaaaa oxfmaaaaa umpedjmaaaaaa overmaaaaaaa hetmaaaaa
//aaa azylmaaaaaaaaa ogdmaaaaaaaaaa"
// 
//
// 
//
// 提示： 
//
// 
// 1 <= sentence.length <= 150 
// sentence 由英文字母和空格组成 
// sentence 不含前导或尾随空格 
// sentence 中的所有单词由单个空格分隔 
// 
// Related Topics 字符串 
// 👍 101 👎 0

import java.util.HashSet;
import java.util.Set;

class GoatLatin {
    public static void main(String[] args) {
        //创建该题目的对象方便调用
        Solution solution = new GoatLatin().new Solution();
        solution.toGoatLatin("I speak Goat Latin");
    }
    //leetcode submit region begin(Prohibit modification and deletion)
class Solution {
    public String toGoatLatin(String sentence) {
        String[] words = sentence.split(" ");
        Set<Character> set = new HashSet<>();  //存放辅音元素
        set.add('a');set.add('e');set.add('i');set.add('o');set.add('u');
        set.add('A');set.add('E');set.add('I');set.add('O');set.add('U');
        int count = 1;  //记录要加入a的数量
        for (int i = 0;i<words.length;i++){
            if(set.contains(words[i].charAt(0))){  //检查首字母是否为辅音字母
                words[i] = words[i]+"ma";
                int j = 0;
                while (j++<count){
                    words[i] = words[i]+"a";
                }
            }
            if(!set.contains(words[i].charAt(0))){   //非辅音
                char[] word = words[i].toCharArray();
                String newWord = String.copyValueOf(word,1,word.length-1)+word[0];
                words[i] = newWord+"ma";
                int j = 0;
                while (j++<count){
                    words[i] = words[i]+"a";
                }
            }
            count++;
        }
        StringBuffer ans = new StringBuffer();
        for(int i = 0;i< words.length;i++){
            if(i == words.length-1){
                ans.append(words[i]);
                break;
            }
            ans.append(words[i]+" ");
        }
        return ans.toString();
    }
}
//leetcode submit region end(Prohibit modification and deletion)

}
